package cn.com.anypay.manager.service;

/**
 * 验证码服务接口
 */
public interface VerificationCodeService {
    
    /**
     * 生成验证码
     * @param type 验证码类型（如：login, register等）
     * @param key 验证码关联的标识（如：手机号、邮箱等）
     * @return 生成的验证码
     */
    String generateCode(String type, String key);
    
    /**
     * 验证验证码
     * @param type 验证码类型
     * @param key 验证码关联的标识
     * @param code 用户输入的验证码
     * @return 验证结果
     */
    boolean verifyCode(String type, String key, String code);
    
    /**
     * 保存验证码
     * @param type 验证码类型
     * @param key 验证码关联的标识
     * @param code 验证码
     * @param expireSeconds 过期时间（秒）
     */
    void saveCode(String type, String key, String code, int expireSeconds);
    
    /**
     * 获取验证码
     * @param type 验证码类型
     * @param key 验证码关联的标识
     * @return 验证码，如果不存在或已过期则返回null
     */
    String getCode(String type, String key);
    
    /**
     * 删除验证码
     * @param type 验证码类型
     * @param key 验证码关联的标识
     */
    void deleteCode(String type, String key);
}